package com.mercury.ec.framework.air.core.client.impl.sunstn.dto.detr;

import com.mercury.ec.framework.air.core.client.impl.sunstn.jaxb.adapter.Boolean2XmlAdapter;
import com.mercury.ec.framework.air.core.client.impl.sunstn.jaxb.adapter.LocalDate2XmlAdapter;
import lombok.Data;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * SUNSTN DETR票号 Response DTO
 *
 * @author hesx
 */
@Data
@XmlAccessorType(XmlAccessType.FIELD)
public class SunstnDetrTicketRespDTO {
    /**
     * 票号
     */
    @XmlAttribute(name = "no")
    private String no;

    /**
     * 后续票号
     */
    private String ACCESS_TKT;

    /**
     * 乘机人姓名
     */
    private String NAME;

    /**
     * 乘机人证件号
     */
    private String NI;

    /**
     * 行程单号
     */
    private String RP;

    /**
     * 改签票号
     */
    private String EXCH;

    /**
     * 是否已做退废
     */
    @XmlJavaTypeAdapter(Boolean2XmlAdapter.class)
    private Boolean VOID;

    /**
     * 出票日期
     */
    @XmlJavaTypeAdapter(LocalDate2XmlAdapter.class)
    private LocalDate ISSUEDATE;

    /**
     * 出票office号
     */
    private String OFFICECODE;

    /**
     * 出票单位航协号
     */
    private String CATACODE;

    /**
     * 票面价
     */
    private BigDecimal CNY;

    /**
     * 机建费
     */
    private BigDecimal TCNYCN;

    /**
     * 燃油税
     */
    private BigDecimal TCNYYQ;

    /**
     * 总价
     */
    private BigDecimal ACNY;

    /**
     * 客票类型
     */
    private String TKTYPE;

    /**
     * 票证类型
     */
    private String TKCATE;

    /**
     * 支付方式
     */
    private String PAYMENT;

    /**
     *
     */
    private String EI;

    /**
     *
     */
    private String TOURCODE;

    /**
     * 航司编码
     */
    private String BIGPNR;

    /**
     * PNR
     */
    private String PNR;

    /**
     *
     */
    private String AIRCHANGE;

    /**
     * 票证状态
     */
    private String TKTSTATE;

    /**
     * 打票机号
     */
    private String PRINTDEV;

    /**
     * 航段列表
     */
    @XmlElementWrapper(name = "VOYAGES")
    @XmlElement(name = "VOYAGE", type = SunstnDetrRouteRespDTO.class)
    private List<SunstnDetrRouteRespDTO> routes;
}
